package edu.algo3.algoThief.vista;

import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;

import edu.algo3.algoThief.domain.Juego;
import edu.algo3.algoThief.util.Constants;

@SuppressWarnings("serial")
public class PanelMensajeCasoAsignado
    extends JDialog
    implements ActionListener {

    public PanelMensajeCasoAsignado() {

        JPanel messagePane = new JPanel();
        messagePane.setLayout(new GridBagLayout());
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.insets = new Insets(10, 10, 10, 10);

        gbc.gridx = 0;
        gbc.gridy = 0;
        StringBuilder mensajeJugadorIdentificado = new StringBuilder();
        mensajeJugadorIdentificado.append(Constants.HAS_SIDO_IDENTIFICADO);
        mensajeJugadorIdentificado.append(Juego.getInstance()
            .getNombreJugador());
        mensajeJugadorIdentificado.append(Constants.PUNTO);
        messagePane.add(new JLabel(mensajeJugadorIdentificado.toString()), gbc);

        gbc.insets = new Insets(10, 10, 10, 10);
        gbc.gridy = 1;
        StringBuilder mensajeGraduacion = new StringBuilder();
        mensajeGraduacion.append(Constants.TU_GRADUACION_ACTUAL_ES);
        mensajeGraduacion.append(Juego.getInstance().getContextoDelJuego()
            .getCargoPoliciaco().getNombreDelCargo());
        mensajeGraduacion.append(Constants.PUNTO);
        messagePane.add(new JLabel(mensajeGraduacion.toString()), gbc);

        gbc.gridy = 2;
        StringBuilder mensajeArrestosHechos = new StringBuilder();
        mensajeArrestosHechos.append(Constants.CANTIDAD_DE_ARRESTOS);
        mensajeArrestosHechos.append(Juego.getInstance().getJugador()
            .getArrestos());
        mensajeArrestosHechos.append(Constants.PUNTO);
        messagePane.add(new JLabel(mensajeArrestosHechos.toString()), gbc);

        gbc.gridy = 3;
        String mensajeNoticias = Constants.NOTICIAS;
        messagePane.add(new JLabel(mensajeNoticias), gbc);

        gbc.gridy = 4;
        StringBuilder mensajeTesoroRobado = new StringBuilder();
        mensajeTesoroRobado.append(Constants.TESORO_ROBADO_EN);
        mensajeTesoroRobado.append(Juego.getInstance().getJugador()
            .getCiudadActual().getNombre());
        mensajeTesoroRobado.append(Constants.PUNTO);
        messagePane.add(new JLabel(mensajeTesoroRobado.toString()), gbc);

        gbc.gridy = 5;
        StringBuilder mensajeBotin = new StringBuilder();
        mensajeBotin.append(Constants.BOTIN_IDENTIFICADO_COMO);
        mensajeBotin.append(Juego.getInstance().getContextoDelJuego().getCaso()
            .getLadron().getObjetoRobado().getDescripcion());
        mensajeBotin.append(Constants.PUNTO);
        messagePane.add(new JLabel(mensajeBotin.toString()), gbc);

        getContentPane().add(messagePane);
        JPanel buttonPane = new JPanel();
        JButton button = new JButton(Constants.COMENZAR);
        buttonPane.add(button);
        button.addActionListener(this);
        getContentPane().add(buttonPane, BorderLayout.SOUTH);
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        pack();
        setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {

        setVisible(false);
        VentanaCiudadActual ventanaCiudadActual = new VentanaCiudadActual();
        ventanaCiudadActual.setVisible(true);
        dispose();
    }

}
